/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package reamodel.impl;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

import org.eclipse.emf.ecore.impl.EPackageImpl;

import reamodel.Commitment;
import reamodel.DecrementCommitment;
import reamodel.DecrementEconomicEvent;
import reamodel.DecrementEconomicEventType;
import reamodel.EconomicAgent;
import reamodel.EconomicAgentType;
import reamodel.EconomicEvent;
import reamodel.EconomicEventType;
import reamodel.EconomicResource;
import reamodel.EconomicResourceType;
import reamodel.IncrementCommitment;
import reamodel.IncrementEconomicEvent;
import reamodel.IncrementEconomicEventType;
import reamodel.Inflow;
import reamodel.InflowType;
import reamodel.Outflow;
import reamodel.OutflowType;
import reamodel.Participation;
import reamodel.ProvideParticipation;
import reamodel.REAModel;
import reamodel.ReamodelFactory;
import reamodel.ReamodelPackage;
import reamodel.ReceiveParticipation;
import reamodel.Stockflow;
import reamodel.StockflowType;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model <b>Package</b>.
 * <!-- end-user-doc -->
 * @generated
 */
public class ReamodelPackageImpl extends EPackageImpl implements ReamodelPackage {
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass reaModelEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass economicResourceTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass economicAgentTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass economicEventTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass incrementEconomicEventTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass decrementEconomicEventTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass economicResourceEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass economicAgentEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass economicEventEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass incrementEconomicEventEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass decrementEconomicEventEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass commitmentEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass incrementCommitmentEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass decrementCommitmentEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass participationEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass receiveParticipationEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass provideParticipationEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass stockflowEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass inflowEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass outflowEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass stockflowTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass inflowTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass outflowTypeEClass = null;

	/**
	 * Creates an instance of the model <b>Package</b>, registered with
	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
	 * package URI value.
	 * <p>Note: the correct way to create the package is via the static
	 * factory method {@link #init init()}, which also performs
	 * initialization of the package, or returns the registered package,
	 * if one already exists.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see org.eclipse.emf.ecore.EPackage.Registry
	 * @see reamodel.ReamodelPackage#eNS_URI
	 * @see #init()
	 * @generated
	 */
	private ReamodelPackageImpl() {
		super(eNS_URI, ReamodelFactory.eINSTANCE);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private static boolean isInited = false;

	/**
	 * Creates, registers, and initializes the <b>Package</b> for this
	 * model, and for any others upon which it depends.  Simple
	 * dependencies are satisfied by calling this method on all
	 * dependent packages before doing anything else.  This method drives
	 * initialization for interdependent packages directly, in parallel
	 * with this package, itself.
	 * <p>Of this package and its interdependencies, all packages which
	 * have not yet been registered by their URI values are first created
	 * and registered.  The packages are then initialized in two steps:
	 * meta-model objects for all of the packages are created before any
	 * are initialized, since one package's meta-model objects may refer to
	 * those of another.
	 * <p>Invocation of this method will not affect any packages that have
	 * already been initialized.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #eNS_URI
	 * @see #createPackageContents()
	 * @see #initializePackageContents()
	 * @generated
	 */
	public static ReamodelPackage init() {
		if (isInited) return (ReamodelPackage)EPackage.Registry.INSTANCE.getEPackage(ReamodelPackage.eNS_URI);

		// Obtain or create and register package
		ReamodelPackageImpl theReamodelPackage = (ReamodelPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof ReamodelPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new ReamodelPackageImpl());

		isInited = true;

		// Create package meta-data objects
		theReamodelPackage.createPackageContents();

		// Initialize created meta-data
		theReamodelPackage.initializePackageContents();

		// Mark meta-data to indicate it can't be changed
		theReamodelPackage.freeze();

		return theReamodelPackage;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getREAModel() {
		return reaModelEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getREAModel_ResourceTypes() {
		return (EReference)reaModelEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getREAModel_EventTypes() {
		return (EReference)reaModelEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getREAModel_AgentTypes() {
		return (EReference)reaModelEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getREAModel_Resources() {
		return (EReference)reaModelEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getREAModel_Events() {
		return (EReference)reaModelEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getREAModel_Agents() {
		return (EReference)reaModelEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getREAModel_Commitments() {
		return (EReference)reaModelEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getREAModel_Description() {
		return (EAttribute)reaModelEClass.getEStructuralFeatures().get(7);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getEconomicResourceType() {
		return economicResourceTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getEconomicResourceType_Name() {
		return (EAttribute)economicResourceTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getEconomicResourceType_Typify() {
		return (EReference)economicResourceTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getEconomicResourceType_Specify() {
		return (EReference)economicResourceTypeEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getEconomicResourceType_InflowType() {
		return (EReference)economicResourceTypeEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getEconomicResourceType_OutflowType() {
		return (EReference)economicResourceTypeEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getEconomicAgentType() {
		return economicAgentTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getEconomicAgentType_Name() {
		return (EAttribute)economicAgentTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getEconomicAgentType_Typify() {
		return (EReference)economicAgentTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getEconomicAgentType_Specify() {
		return (EReference)economicAgentTypeEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getEconomicEventType() {
		return economicEventTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getEconomicEventType_Name() {
		return (EAttribute)economicEventTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getIncrementEconomicEventType() {
		return incrementEconomicEventTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getIncrementEconomicEventType_Specify() {
		return (EReference)incrementEconomicEventTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getIncrementEconomicEventType_Typify() {
		return (EReference)incrementEconomicEventTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getIncrementEconomicEventType_InflowType() {
		return (EReference)incrementEconomicEventTypeEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getIncrementEconomicEventType_DualityType() {
		return (EReference)incrementEconomicEventTypeEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDecrementEconomicEventType() {
		return decrementEconomicEventTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDecrementEconomicEventType_Specify() {
		return (EReference)decrementEconomicEventTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDecrementEconomicEventType_Typify() {
		return (EReference)decrementEconomicEventTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDecrementEconomicEventType_OutflowType() {
		return (EReference)decrementEconomicEventTypeEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDecrementEconomicEventType_DualityType() {
		return (EReference)decrementEconomicEventTypeEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getEconomicResource() {
		return economicResourceEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getEconomicResource_Inflow() {
		return (EReference)economicResourceEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getEconomicResource_Outflow() {
		return (EReference)economicResourceEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getEconomicResource_Name() {
		return (EAttribute)economicResourceEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getEconomicResource_TypifiedBy() {
		return (EReference)economicResourceEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getEconomicAgent() {
		return economicAgentEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getEconomicAgent_Provides() {
		return (EReference)economicAgentEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getEconomicAgent_Receives() {
		return (EReference)economicAgentEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getEconomicAgent_Name() {
		return (EAttribute)economicAgentEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getEconomicAgent_TypifiedBy() {
		return (EReference)economicAgentEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getEconomicEvent() {
		return economicEventEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getEconomicEvent_Provider() {
		return (EReference)economicEventEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getEconomicEvent_Receiver() {
		return (EReference)economicEventEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getEconomicEvent_Name() {
		return (EAttribute)economicEventEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getIncrementEconomicEvent() {
		return incrementEconomicEventEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getIncrementEconomicEvent_Inflow() {
		return (EReference)incrementEconomicEventEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getIncrementEconomicEvent_Duality() {
		return (EReference)incrementEconomicEventEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getIncrementEconomicEvent_Fulfill() {
		return (EReference)incrementEconomicEventEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getIncrementEconomicEvent_TypifiedBy() {
		return (EReference)incrementEconomicEventEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDecrementEconomicEvent() {
		return decrementEconomicEventEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDecrementEconomicEvent_Outflow() {
		return (EReference)decrementEconomicEventEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDecrementEconomicEvent_Duality() {
		return (EReference)decrementEconomicEventEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDecrementEconomicEvent_Fulfill() {
		return (EReference)decrementEconomicEventEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDecrementEconomicEvent_TypifiedBy() {
		return (EReference)decrementEconomicEventEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getCommitment() {
		return commitmentEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCommitment_Name() {
		return (EAttribute)commitmentEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCommitment_Resource() {
		return (EReference)commitmentEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCommitment_Agent() {
		return (EReference)commitmentEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getIncrementCommitment() {
		return incrementCommitmentEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getIncrementCommitment_Specify() {
		return (EReference)incrementCommitmentEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getIncrementCommitment_Fulfill() {
		return (EReference)incrementCommitmentEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getIncrementCommitment_Reciprocity() {
		return (EReference)incrementCommitmentEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDecrementCommitment() {
		return decrementCommitmentEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDecrementCommitment_Specify() {
		return (EReference)decrementCommitmentEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDecrementCommitment_Fulfill() {
		return (EReference)decrementCommitmentEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDecrementCommitment_Reciprocity() {
		return (EReference)decrementCommitmentEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getParticipation() {
		return participationEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getParticipation_Name() {
		return (EAttribute)participationEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getReceiveParticipation() {
		return receiveParticipationEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getReceiveParticipation_Event() {
		return (EReference)receiveParticipationEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getReceiveParticipation_Agent() {
		return (EReference)receiveParticipationEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getProvideParticipation() {
		return provideParticipationEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getProvideParticipation_Event() {
		return (EReference)provideParticipationEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getProvideParticipation_Agent() {
		return (EReference)provideParticipationEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getStockflow() {
		return stockflowEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getStockflow_Name() {
		return (EAttribute)stockflowEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getInflow() {
		return inflowEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getInflow_Resource() {
		return (EReference)inflowEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getInflow_Event() {
		return (EReference)inflowEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getOutflow() {
		return outflowEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getOutflow_Resource() {
		return (EReference)outflowEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getOutflow_Event() {
		return (EReference)outflowEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getStockflowType() {
		return stockflowTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getStockflowType_Name() {
		return (EAttribute)stockflowTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getInflowType() {
		return inflowTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getInflowType_ResourceType() {
		return (EReference)inflowTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getInflowType_EventType() {
		return (EReference)inflowTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getOutflowType() {
		return outflowTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getOutflowType_ResourceType() {
		return (EReference)outflowTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getOutflowType_EventType() {
		return (EReference)outflowTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ReamodelFactory getReamodelFactory() {
		return (ReamodelFactory)getEFactoryInstance();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private boolean isCreated = false;

	/**
	 * Creates the meta-model objects for the package.  This method is
	 * guarded to have no affect on any invocation but its first.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void createPackageContents() {
		if (isCreated) return;
		isCreated = true;

		// Create classes and their features
		reaModelEClass = createEClass(REA_MODEL);
		createEReference(reaModelEClass, REA_MODEL__RESOURCE_TYPES);
		createEReference(reaModelEClass, REA_MODEL__EVENT_TYPES);
		createEReference(reaModelEClass, REA_MODEL__AGENT_TYPES);
		createEReference(reaModelEClass, REA_MODEL__RESOURCES);
		createEReference(reaModelEClass, REA_MODEL__EVENTS);
		createEReference(reaModelEClass, REA_MODEL__AGENTS);
		createEReference(reaModelEClass, REA_MODEL__COMMITMENTS);
		createEAttribute(reaModelEClass, REA_MODEL__DESCRIPTION);

		economicResourceTypeEClass = createEClass(ECONOMIC_RESOURCE_TYPE);
		createEAttribute(economicResourceTypeEClass, ECONOMIC_RESOURCE_TYPE__NAME);
		createEReference(economicResourceTypeEClass, ECONOMIC_RESOURCE_TYPE__TYPIFY);
		createEReference(economicResourceTypeEClass, ECONOMIC_RESOURCE_TYPE__SPECIFY);
		createEReference(economicResourceTypeEClass, ECONOMIC_RESOURCE_TYPE__INFLOW_TYPE);
		createEReference(economicResourceTypeEClass, ECONOMIC_RESOURCE_TYPE__OUTFLOW_TYPE);

		economicAgentTypeEClass = createEClass(ECONOMIC_AGENT_TYPE);
		createEAttribute(economicAgentTypeEClass, ECONOMIC_AGENT_TYPE__NAME);
		createEReference(economicAgentTypeEClass, ECONOMIC_AGENT_TYPE__TYPIFY);
		createEReference(economicAgentTypeEClass, ECONOMIC_AGENT_TYPE__SPECIFY);

		economicEventTypeEClass = createEClass(ECONOMIC_EVENT_TYPE);
		createEAttribute(economicEventTypeEClass, ECONOMIC_EVENT_TYPE__NAME);

		incrementEconomicEventTypeEClass = createEClass(INCREMENT_ECONOMIC_EVENT_TYPE);
		createEReference(incrementEconomicEventTypeEClass, INCREMENT_ECONOMIC_EVENT_TYPE__SPECIFY);
		createEReference(incrementEconomicEventTypeEClass, INCREMENT_ECONOMIC_EVENT_TYPE__TYPIFY);
		createEReference(incrementEconomicEventTypeEClass, INCREMENT_ECONOMIC_EVENT_TYPE__INFLOW_TYPE);
		createEReference(incrementEconomicEventTypeEClass, INCREMENT_ECONOMIC_EVENT_TYPE__DUALITY_TYPE);

		decrementEconomicEventTypeEClass = createEClass(DECREMENT_ECONOMIC_EVENT_TYPE);
		createEReference(decrementEconomicEventTypeEClass, DECREMENT_ECONOMIC_EVENT_TYPE__SPECIFY);
		createEReference(decrementEconomicEventTypeEClass, DECREMENT_ECONOMIC_EVENT_TYPE__TYPIFY);
		createEReference(decrementEconomicEventTypeEClass, DECREMENT_ECONOMIC_EVENT_TYPE__OUTFLOW_TYPE);
		createEReference(decrementEconomicEventTypeEClass, DECREMENT_ECONOMIC_EVENT_TYPE__DUALITY_TYPE);

		economicResourceEClass = createEClass(ECONOMIC_RESOURCE);
		createEReference(economicResourceEClass, ECONOMIC_RESOURCE__INFLOW);
		createEReference(economicResourceEClass, ECONOMIC_RESOURCE__OUTFLOW);
		createEAttribute(economicResourceEClass, ECONOMIC_RESOURCE__NAME);
		createEReference(economicResourceEClass, ECONOMIC_RESOURCE__TYPIFIED_BY);

		economicAgentEClass = createEClass(ECONOMIC_AGENT);
		createEReference(economicAgentEClass, ECONOMIC_AGENT__PROVIDES);
		createEReference(economicAgentEClass, ECONOMIC_AGENT__RECEIVES);
		createEAttribute(economicAgentEClass, ECONOMIC_AGENT__NAME);
		createEReference(economicAgentEClass, ECONOMIC_AGENT__TYPIFIED_BY);

		economicEventEClass = createEClass(ECONOMIC_EVENT);
		createEReference(economicEventEClass, ECONOMIC_EVENT__PROVIDER);
		createEReference(economicEventEClass, ECONOMIC_EVENT__RECEIVER);
		createEAttribute(economicEventEClass, ECONOMIC_EVENT__NAME);

		incrementEconomicEventEClass = createEClass(INCREMENT_ECONOMIC_EVENT);
		createEReference(incrementEconomicEventEClass, INCREMENT_ECONOMIC_EVENT__INFLOW);
		createEReference(incrementEconomicEventEClass, INCREMENT_ECONOMIC_EVENT__DUALITY);
		createEReference(incrementEconomicEventEClass, INCREMENT_ECONOMIC_EVENT__FULFILL);
		createEReference(incrementEconomicEventEClass, INCREMENT_ECONOMIC_EVENT__TYPIFIED_BY);

		decrementEconomicEventEClass = createEClass(DECREMENT_ECONOMIC_EVENT);
		createEReference(decrementEconomicEventEClass, DECREMENT_ECONOMIC_EVENT__OUTFLOW);
		createEReference(decrementEconomicEventEClass, DECREMENT_ECONOMIC_EVENT__DUALITY);
		createEReference(decrementEconomicEventEClass, DECREMENT_ECONOMIC_EVENT__FULFILL);
		createEReference(decrementEconomicEventEClass, DECREMENT_ECONOMIC_EVENT__TYPIFIED_BY);

		commitmentEClass = createEClass(COMMITMENT);
		createEAttribute(commitmentEClass, COMMITMENT__NAME);
		createEReference(commitmentEClass, COMMITMENT__RESOURCE);
		createEReference(commitmentEClass, COMMITMENT__AGENT);

		incrementCommitmentEClass = createEClass(INCREMENT_COMMITMENT);
		createEReference(incrementCommitmentEClass, INCREMENT_COMMITMENT__SPECIFY);
		createEReference(incrementCommitmentEClass, INCREMENT_COMMITMENT__FULFILL);
		createEReference(incrementCommitmentEClass, INCREMENT_COMMITMENT__RECIPROCITY);

		decrementCommitmentEClass = createEClass(DECREMENT_COMMITMENT);
		createEReference(decrementCommitmentEClass, DECREMENT_COMMITMENT__SPECIFY);
		createEReference(decrementCommitmentEClass, DECREMENT_COMMITMENT__FULFILL);
		createEReference(decrementCommitmentEClass, DECREMENT_COMMITMENT__RECIPROCITY);

		participationEClass = createEClass(PARTICIPATION);
		createEAttribute(participationEClass, PARTICIPATION__NAME);

		receiveParticipationEClass = createEClass(RECEIVE_PARTICIPATION);
		createEReference(receiveParticipationEClass, RECEIVE_PARTICIPATION__EVENT);
		createEReference(receiveParticipationEClass, RECEIVE_PARTICIPATION__AGENT);

		provideParticipationEClass = createEClass(PROVIDE_PARTICIPATION);
		createEReference(provideParticipationEClass, PROVIDE_PARTICIPATION__EVENT);
		createEReference(provideParticipationEClass, PROVIDE_PARTICIPATION__AGENT);

		stockflowEClass = createEClass(STOCKFLOW);
		createEAttribute(stockflowEClass, STOCKFLOW__NAME);

		inflowEClass = createEClass(INFLOW);
		createEReference(inflowEClass, INFLOW__RESOURCE);
		createEReference(inflowEClass, INFLOW__EVENT);

		outflowEClass = createEClass(OUTFLOW);
		createEReference(outflowEClass, OUTFLOW__RESOURCE);
		createEReference(outflowEClass, OUTFLOW__EVENT);

		stockflowTypeEClass = createEClass(STOCKFLOW_TYPE);
		createEAttribute(stockflowTypeEClass, STOCKFLOW_TYPE__NAME);

		inflowTypeEClass = createEClass(INFLOW_TYPE);
		createEReference(inflowTypeEClass, INFLOW_TYPE__RESOURCE_TYPE);
		createEReference(inflowTypeEClass, INFLOW_TYPE__EVENT_TYPE);

		outflowTypeEClass = createEClass(OUTFLOW_TYPE);
		createEReference(outflowTypeEClass, OUTFLOW_TYPE__RESOURCE_TYPE);
		createEReference(outflowTypeEClass, OUTFLOW_TYPE__EVENT_TYPE);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private boolean isInitialized = false;

	/**
	 * Complete the initialization of the package and its meta-model.  This
	 * method is guarded to have no affect on any invocation but its first.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void initializePackageContents() {
		if (isInitialized) return;
		isInitialized = true;

		// Initialize package
		setName(eNAME);
		setNsPrefix(eNS_PREFIX);
		setNsURI(eNS_URI);

		// Create type parameters

		// Set bounds for type parameters

		// Add supertypes to classes
		incrementEconomicEventTypeEClass.getESuperTypes().add(this.getEconomicEventType());
		decrementEconomicEventTypeEClass.getESuperTypes().add(this.getEconomicEventType());
		incrementEconomicEventEClass.getESuperTypes().add(this.getEconomicEvent());
		decrementEconomicEventEClass.getESuperTypes().add(this.getEconomicEvent());
		incrementCommitmentEClass.getESuperTypes().add(this.getCommitment());
		decrementCommitmentEClass.getESuperTypes().add(this.getCommitment());
		receiveParticipationEClass.getESuperTypes().add(this.getParticipation());
		provideParticipationEClass.getESuperTypes().add(this.getParticipation());
		inflowEClass.getESuperTypes().add(this.getStockflow());
		outflowEClass.getESuperTypes().add(this.getStockflow());
		inflowTypeEClass.getESuperTypes().add(this.getStockflowType());
		outflowTypeEClass.getESuperTypes().add(this.getStockflowType());

		// Initialize classes and features; add operations and parameters
		initEClass(reaModelEClass, REAModel.class, "REAModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getREAModel_ResourceTypes(), this.getEconomicResourceType(), null, "resourceTypes", null, 0, -1, REAModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		getREAModel_ResourceTypes().getEKeys().add(this.getEconomicResourceType_Name());
		initEReference(getREAModel_EventTypes(), this.getEconomicEventType(), null, "eventTypes", null, 0, -1, REAModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		getREAModel_EventTypes().getEKeys().add(this.getEconomicEventType_Name());
		initEReference(getREAModel_AgentTypes(), this.getEconomicAgentType(), null, "agentTypes", null, 0, -1, REAModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		getREAModel_AgentTypes().getEKeys().add(this.getEconomicAgentType_Name());
		initEReference(getREAModel_Resources(), this.getEconomicResource(), null, "resources", null, 0, -1, REAModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		getREAModel_Resources().getEKeys().add(this.getEconomicResource_Name());
		initEReference(getREAModel_Events(), this.getEconomicEvent(), null, "events", null, 0, -1, REAModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		getREAModel_Events().getEKeys().add(this.getEconomicEvent_Name());
		initEReference(getREAModel_Agents(), this.getEconomicAgent(), null, "agents", null, 0, -1, REAModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		getREAModel_Agents().getEKeys().add(this.getEconomicAgent_Name());
		initEReference(getREAModel_Commitments(), this.getCommitment(), null, "Commitments", null, 0, -1, REAModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getREAModel_Description(), ecorePackage.getEString(), "description", null, 0, 1, REAModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(economicResourceTypeEClass, EconomicResourceType.class, "EconomicResourceType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getEconomicResourceType_Name(), ecorePackage.getEString(), "name", null, 0, 1, EconomicResourceType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getEconomicResourceType_Typify(), this.getEconomicResource(), this.getEconomicResource_TypifiedBy(), "typify", null, 0, -1, EconomicResourceType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getEconomicResourceType_Typify().getEKeys().add(this.getEconomicResource_Name());
		initEReference(getEconomicResourceType_Specify(), this.getCommitment(), this.getCommitment_Resource(), "specify", null, 0, -1, EconomicResourceType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getEconomicResourceType_Specify().getEKeys().add(this.getCommitment_Name());
		initEReference(getEconomicResourceType_InflowType(), this.getInflowType(), this.getInflowType_ResourceType(), "inflowType", null, 1, -1, EconomicResourceType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getEconomicResourceType_InflowType().getEKeys().add(this.getStockflowType_Name());
		initEReference(getEconomicResourceType_OutflowType(), this.getOutflowType(), this.getOutflowType_ResourceType(), "outflowType", null, 1, -1, EconomicResourceType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getEconomicResourceType_OutflowType().getEKeys().add(this.getStockflowType_Name());

		initEClass(economicAgentTypeEClass, EconomicAgentType.class, "EconomicAgentType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getEconomicAgentType_Name(), ecorePackage.getEString(), "name", null, 0, 1, EconomicAgentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getEconomicAgentType_Typify(), this.getEconomicAgent(), this.getEconomicAgent_TypifiedBy(), "typify", null, 0, -1, EconomicAgentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getEconomicAgentType_Typify().getEKeys().add(this.getEconomicAgent_Name());
		initEReference(getEconomicAgentType_Specify(), this.getCommitment(), this.getCommitment_Agent(), "specify", null, 0, -1, EconomicAgentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getEconomicAgentType_Specify().getEKeys().add(this.getCommitment_Name());

		initEClass(economicEventTypeEClass, EconomicEventType.class, "EconomicEventType", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getEconomicEventType_Name(), ecorePackage.getEString(), "name", null, 0, 1, EconomicEventType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(incrementEconomicEventTypeEClass, IncrementEconomicEventType.class, "IncrementEconomicEventType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getIncrementEconomicEventType_Specify(), this.getIncrementCommitment(), null, "specify", null, 0, -1, IncrementEconomicEventType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getIncrementEconomicEventType_Specify().getEKeys().add(this.getCommitment_Name());
		initEReference(getIncrementEconomicEventType_Typify(), this.getIncrementEconomicEvent(), this.getIncrementEconomicEvent_TypifiedBy(), "typify", null, 0, -1, IncrementEconomicEventType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getIncrementEconomicEventType_Typify().getEKeys().add(this.getEconomicEvent_Name());
		initEReference(getIncrementEconomicEventType_InflowType(), this.getInflowType(), this.getInflowType_EventType(), "inflowType", null, 1, -1, IncrementEconomicEventType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getIncrementEconomicEventType_InflowType().getEKeys().add(this.getStockflowType_Name());
		initEReference(getIncrementEconomicEventType_DualityType(), this.getDecrementEconomicEventType(), this.getDecrementEconomicEventType_DualityType(), "dualityType", null, 1, -1, IncrementEconomicEventType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getIncrementEconomicEventType_DualityType().getEKeys().add(this.getEconomicEventType_Name());

		initEClass(decrementEconomicEventTypeEClass, DecrementEconomicEventType.class, "DecrementEconomicEventType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getDecrementEconomicEventType_Specify(), this.getDecrementCommitment(), null, "specify", null, 0, -1, DecrementEconomicEventType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getDecrementEconomicEventType_Specify().getEKeys().add(this.getCommitment_Name());
		initEReference(getDecrementEconomicEventType_Typify(), this.getDecrementEconomicEvent(), this.getDecrementEconomicEvent_TypifiedBy(), "typify", null, 0, -1, DecrementEconomicEventType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getDecrementEconomicEventType_Typify().getEKeys().add(this.getEconomicEvent_Name());
		initEReference(getDecrementEconomicEventType_OutflowType(), this.getOutflowType(), this.getOutflowType_EventType(), "outflowType", null, 1, -1, DecrementEconomicEventType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getDecrementEconomicEventType_OutflowType().getEKeys().add(this.getStockflowType_Name());
		initEReference(getDecrementEconomicEventType_DualityType(), this.getIncrementEconomicEventType(), this.getIncrementEconomicEventType_DualityType(), "dualityType", null, 1, -1, DecrementEconomicEventType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getDecrementEconomicEventType_DualityType().getEKeys().add(this.getEconomicEventType_Name());

		initEClass(economicResourceEClass, EconomicResource.class, "EconomicResource", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getEconomicResource_Inflow(), this.getInflow(), this.getInflow_Resource(), "inflow", null, 0, -1, EconomicResource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getEconomicResource_Inflow().getEKeys().add(this.getStockflow_Name());
		initEReference(getEconomicResource_Outflow(), this.getOutflow(), this.getOutflow_Resource(), "outflow", null, 0, -1, EconomicResource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getEconomicResource_Outflow().getEKeys().add(this.getStockflow_Name());
		initEAttribute(getEconomicResource_Name(), ecorePackage.getEString(), "name", null, 0, 1, EconomicResource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getEconomicResource_TypifiedBy(), this.getEconomicResourceType(), this.getEconomicResourceType_Typify(), "typifiedBy", null, 1, 1, EconomicResource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getEconomicResource_TypifiedBy().getEKeys().add(this.getEconomicResourceType_Name());

		initEClass(economicAgentEClass, EconomicAgent.class, "EconomicAgent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getEconomicAgent_Provides(), this.getProvideParticipation(), this.getProvideParticipation_Agent(), "provides", null, 0, -1, EconomicAgent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getEconomicAgent_Provides().getEKeys().add(this.getParticipation_Name());
		initEReference(getEconomicAgent_Receives(), this.getReceiveParticipation(), this.getReceiveParticipation_Agent(), "receives", null, 0, -1, EconomicAgent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getEconomicAgent_Receives().getEKeys().add(this.getParticipation_Name());
		initEAttribute(getEconomicAgent_Name(), ecorePackage.getEString(), "name", null, 0, 1, EconomicAgent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getEconomicAgent_TypifiedBy(), this.getEconomicAgentType(), this.getEconomicAgentType_Typify(), "typifiedBy", null, 1, 1, EconomicAgent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(economicEventEClass, EconomicEvent.class, "EconomicEvent", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getEconomicEvent_Provider(), this.getProvideParticipation(), this.getProvideParticipation_Event(), "provider", null, 1, 1, EconomicEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getEconomicEvent_Provider().getEKeys().add(this.getParticipation_Name());
		initEReference(getEconomicEvent_Receiver(), this.getReceiveParticipation(), this.getReceiveParticipation_Event(), "receiver", null, 1, 1, EconomicEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getEconomicEvent_Receiver().getEKeys().add(this.getParticipation_Name());
		initEAttribute(getEconomicEvent_Name(), ecorePackage.getEString(), "name", null, 0, 1, EconomicEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(incrementEconomicEventEClass, IncrementEconomicEvent.class, "IncrementEconomicEvent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getIncrementEconomicEvent_Inflow(), this.getInflow(), this.getInflow_Event(), "inflow", null, 1, -1, IncrementEconomicEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getIncrementEconomicEvent_Inflow().getEKeys().add(this.getStockflow_Name());
		initEReference(getIncrementEconomicEvent_Duality(), this.getDecrementEconomicEvent(), this.getDecrementEconomicEvent_Duality(), "duality", null, 0, -1, IncrementEconomicEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getIncrementEconomicEvent_Duality().getEKeys().add(this.getEconomicEvent_Name());
		initEReference(getIncrementEconomicEvent_Fulfill(), this.getIncrementCommitment(), this.getIncrementCommitment_Fulfill(), "fulfill", null, 0, -1, IncrementEconomicEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getIncrementEconomicEvent_Fulfill().getEKeys().add(this.getCommitment_Name());
		initEReference(getIncrementEconomicEvent_TypifiedBy(), this.getIncrementEconomicEventType(), this.getIncrementEconomicEventType_Typify(), "typifiedBy", null, 1, 1, IncrementEconomicEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(decrementEconomicEventEClass, DecrementEconomicEvent.class, "DecrementEconomicEvent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getDecrementEconomicEvent_Outflow(), this.getOutflow(), this.getOutflow_Event(), "outflow", null, 1, -1, DecrementEconomicEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getDecrementEconomicEvent_Outflow().getEKeys().add(this.getStockflow_Name());
		initEReference(getDecrementEconomicEvent_Duality(), this.getIncrementEconomicEvent(), this.getIncrementEconomicEvent_Duality(), "duality", null, 0, -1, DecrementEconomicEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getDecrementEconomicEvent_Duality().getEKeys().add(this.getEconomicEvent_Name());
		initEReference(getDecrementEconomicEvent_Fulfill(), this.getDecrementCommitment(), this.getDecrementCommitment_Fulfill(), "fulfill", null, 0, -1, DecrementEconomicEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getDecrementEconomicEvent_Fulfill().getEKeys().add(this.getCommitment_Name());
		initEReference(getDecrementEconomicEvent_TypifiedBy(), this.getDecrementEconomicEventType(), this.getDecrementEconomicEventType_Typify(), "typifiedBy", null, 0, 1, DecrementEconomicEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(commitmentEClass, Commitment.class, "Commitment", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getCommitment_Name(), ecorePackage.getEString(), "name", null, 0, 1, Commitment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getCommitment_Resource(), this.getEconomicResourceType(), this.getEconomicResourceType_Specify(), "resource", null, 0, -1, Commitment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getCommitment_Resource().getEKeys().add(this.getEconomicResourceType_Name());
		initEReference(getCommitment_Agent(), this.getEconomicAgentType(), this.getEconomicAgentType_Specify(), "agent", null, 0, -1, Commitment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getCommitment_Agent().getEKeys().add(this.getEconomicAgentType_Name());

		initEClass(incrementCommitmentEClass, IncrementCommitment.class, "IncrementCommitment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getIncrementCommitment_Specify(), this.getIncrementEconomicEventType(), null, "specify", null, 0, -1, IncrementCommitment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getIncrementCommitment_Fulfill(), this.getIncrementEconomicEvent(), this.getIncrementEconomicEvent_Fulfill(), "fulfill", null, 0, -1, IncrementCommitment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getIncrementCommitment_Fulfill().getEKeys().add(this.getEconomicEvent_Name());
		initEReference(getIncrementCommitment_Reciprocity(), this.getDecrementCommitment(), this.getDecrementCommitment_Reciprocity(), "reciprocity", null, 1, -1, IncrementCommitment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getIncrementCommitment_Reciprocity().getEKeys().add(this.getCommitment_Name());

		initEClass(decrementCommitmentEClass, DecrementCommitment.class, "DecrementCommitment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getDecrementCommitment_Specify(), this.getDecrementEconomicEventType(), null, "specify", null, 0, -1, DecrementCommitment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getDecrementCommitment_Fulfill(), this.getDecrementEconomicEvent(), this.getDecrementEconomicEvent_Fulfill(), "fulfill", null, 0, -1, DecrementCommitment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getDecrementCommitment_Fulfill().getEKeys().add(this.getEconomicEvent_Name());
		initEReference(getDecrementCommitment_Reciprocity(), this.getIncrementCommitment(), this.getIncrementCommitment_Reciprocity(), "reciprocity", null, 1, -1, DecrementCommitment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getDecrementCommitment_Reciprocity().getEKeys().add(this.getCommitment_Name());

		initEClass(participationEClass, Participation.class, "Participation", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getParticipation_Name(), ecorePackage.getEString(), "name", null, 0, 1, Participation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(receiveParticipationEClass, ReceiveParticipation.class, "ReceiveParticipation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getReceiveParticipation_Event(), this.getEconomicEvent(), this.getEconomicEvent_Receiver(), "event", null, 1, 1, ReceiveParticipation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getReceiveParticipation_Event().getEKeys().add(this.getEconomicEvent_Name());
		initEReference(getReceiveParticipation_Agent(), this.getEconomicAgent(), this.getEconomicAgent_Receives(), "agent", null, 1, 1, ReceiveParticipation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getReceiveParticipation_Agent().getEKeys().add(this.getEconomicAgent_Name());

		initEClass(provideParticipationEClass, ProvideParticipation.class, "ProvideParticipation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getProvideParticipation_Event(), this.getEconomicEvent(), this.getEconomicEvent_Provider(), "event", null, 1, 1, ProvideParticipation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getProvideParticipation_Event().getEKeys().add(this.getEconomicEvent_Name());
		initEReference(getProvideParticipation_Agent(), this.getEconomicAgent(), this.getEconomicAgent_Provides(), "agent", null, 1, 1, ProvideParticipation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getProvideParticipation_Agent().getEKeys().add(this.getEconomicAgent_Name());

		initEClass(stockflowEClass, Stockflow.class, "Stockflow", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getStockflow_Name(), ecorePackage.getEString(), "name", null, 0, 1, Stockflow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(inflowEClass, Inflow.class, "Inflow", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getInflow_Resource(), this.getEconomicResource(), this.getEconomicResource_Inflow(), "resource", null, 1, 1, Inflow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getInflow_Resource().getEKeys().add(this.getEconomicResource_Name());
		initEReference(getInflow_Event(), this.getIncrementEconomicEvent(), this.getIncrementEconomicEvent_Inflow(), "event", null, 1, 1, Inflow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getInflow_Event().getEKeys().add(this.getEconomicEvent_Name());

		initEClass(outflowEClass, Outflow.class, "Outflow", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getOutflow_Resource(), this.getEconomicResource(), this.getEconomicResource_Outflow(), "resource", null, 1, 1, Outflow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getOutflow_Resource().getEKeys().add(this.getEconomicResource_Name());
		initEReference(getOutflow_Event(), this.getDecrementEconomicEvent(), this.getDecrementEconomicEvent_Outflow(), "event", null, 1, 1, Outflow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getOutflow_Event().getEKeys().add(this.getEconomicEvent_Name());

		initEClass(stockflowTypeEClass, StockflowType.class, "StockflowType", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getStockflowType_Name(), ecorePackage.getEString(), "name", null, 0, 1, StockflowType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(inflowTypeEClass, InflowType.class, "InflowType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getInflowType_ResourceType(), this.getEconomicResourceType(), this.getEconomicResourceType_InflowType(), "resourceType", null, 1, 1, InflowType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getInflowType_ResourceType().getEKeys().add(this.getEconomicResourceType_Name());
		initEReference(getInflowType_EventType(), this.getIncrementEconomicEventType(), this.getIncrementEconomicEventType_InflowType(), "eventType", null, 1, 1, InflowType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getInflowType_EventType().getEKeys().add(this.getEconomicEventType_Name());

		initEClass(outflowTypeEClass, OutflowType.class, "OutflowType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getOutflowType_ResourceType(), this.getEconomicResourceType(), this.getEconomicResourceType_OutflowType(), "resourceType", null, 1, 1, OutflowType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getOutflowType_ResourceType().getEKeys().add(this.getEconomicResourceType_Name());
		initEReference(getOutflowType_EventType(), this.getDecrementEconomicEventType(), this.getDecrementEconomicEventType_OutflowType(), "eventType", null, 1, 1, OutflowType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		getOutflowType_EventType().getEKeys().add(this.getEconomicEventType_Name());

		// Create resource
		createResource(eNS_URI);
	}

} //ReamodelPackageImpl
